////////////////////////////////////////////////////////////////////////////////
// Filename: queue.hpp
////////////////////////////////////////////////////////////////////////////////
#ifndef QUEUE_HPP_
#define QUEUE_HPP_

//////////////
// INCLUDES //
//////////////
#include "elem.hpp"

////////////////////////////////////////////////////////////////////////////////
// Class name: Queue
////////////////////////////////////////////////////////////////////////////////
template <class T> class Queue {
public:
	Queue();

	void Empty();
	int GetElemCount();
	Elem<T>* First();
	void Enqueue(Elem<T>*);
	void Dequeue();

private:
	Elem<T>* first;
	Elem<T>* last;
	int elemCount;
};

#endif
